package model.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import model.enums.TipoEntradaEnum;

import com.sun.istack.internal.NotNull;


@Entity
@Table(name = "ENTRADA_CAIXA", schema = "public")
@SequenceGenerator(name = "SEQ_ENTRADA")
public class EntradaCaixa extends AbstractPersistableEntity{

	private int id;
	
	private double valor;
		
	private TipoEntradaEnum tipoEntrada;
	
	private Dentista dentista;
	
	private Paciente paciente;
	
	private Caixa caixa;
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_ENTRADA")
	@Column(name = "COD_ENTRADA", nullable = false)
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	@Column(name = "VALOR", nullable = false)
	@NotNull
	public double getValor() {
		return valor;
	}

	public void setValor(double valor) {
		this.valor = valor;
	}

	@Column(name = "TP_ENTRADA", nullable = false)
	public TipoEntradaEnum getTipoEntrada() {
		return tipoEntrada;
	}

	public void setTipoEntrada(TipoEntradaEnum tipoEntrada) {
		this.tipoEntrada = tipoEntrada;
	}

	@ManyToOne
	@JoinColumn(name = "COD_DENTISTA")
	public Dentista getDentista() {
		return dentista;
	}

	public void setDentista(Dentista dentista) {
		this.dentista = dentista;
	}

	@ManyToOne
	@JoinColumn(name = "COD_CAIXA")
	public Caixa getCaixa() {
		return caixa;
	}

	public void setCaixa(Caixa caixa) {
		this.caixa = caixa;
	}

	@ManyToOne
	@JoinColumn(name = "COD_PACIENTE")
	public Paciente getPaciente() {
		return paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}
	
}
